home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Musique / Quod Libet / quodlibet-3.3.0-installer.exe / bin / quodlibet / ext / events / viewlyrics.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2014-12-31  |  4KB  |  78 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.7)
  3.  
  4. '''Provides the `ViewLyrics` plugin for viewing lyrics in the main window.'''
  5. import os
  6. from gi.repository import Gtk, Gdk
  7. from quodlibet import app
  8. from quodlibet.plugins.events import EventPlugin
  9.  
  10. class ViewLyrics(EventPlugin):
  11.     '''The plugin for viewing lyrics in the main window.'''
  12.     PLUGIN_ID = 'View Lyrics'
  13.     PLUGIN_NAME = _('View Lyrics')
  14.     PLUGIN_DESC = _('View lyrics beneath the song list.')
  15.     PLUGIN_VERSION = '0.4'
  16.     
  17.     def enabled(self):
  18.         self.expander = Gtk.Expander(label = _('_Lyrics'), use_underline = True)
  19.         self.expander.set_expanded(True)
  20.         self.scrolled_window = Gtk.ScrolledWindow()
  21.         self.scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
  22.         self.scrolled_window.set_size_request(-1, 200)
  23.         self.adjustment = self.scrolled_window.get_vadjustment()
  24.         self.textview = Gtk.TextView()
  25.         self.textbuffer = self.textview.get_buffer()
  26.         self.textview.set_editable(False)
  27.         self.textview.set_cursor_visible(False)
  28.         self.textview.set_wrap_mode(Gtk.WrapMode.WORD)
  29.         self.textview.set_justification(Gtk.Justification.CENTER)
  30.         self.textview.connect('key-press-event', self.key_press_event_cb)
  31.         self.scrolled_window.add_with_viewport(self.textview)
  32.         self.textview.show()
  33.         self.expander.add(self.scrolled_window)
  34.         self.scrolled_window.show()
  35.         app.window.get_child().pack_start(self.expander, False, True, 0)
  36.  
  37.     
  38.     def disabled(self):
  39.         self.textview.destroy()
  40.         self.scrolled_window.destroy()
  41.         self.expander.destroy()
  42.  
  43.     
  44.     def plugin_on_song_started(self, song):
  45.         '''Called when a song is started. Loads the lyrics.
  46.  
  47.         If there are lyrics associated with `song`, load them into the
  48.         lyrics viewer. Otherwise, hides the lyrics viewer.
  49.         '''
  50.         if song is not None and os.path.exists(song.lyric_filename):
  51.             with open(song.lyric_filename, 'r') as lyric_file:
  52.                 self.textbuffer.set_text(lyric_file.read())
  53.             self.adjustment.set_value(0)
  54.             self.expander.show()
  55.         else:
  56.             self.expander.hide()
  57.  
  58.     
  59.     def key_press_event_cb(self, widget, event):
  60.         '''Handles up/down "key-press-event" in the lyrics view.'''
  61.         adj = self.scrolled_window.get_vadjustment().props
  62.         if event.keyval == Gdk.KEY_Up:
  63.             adj.value = max(adj.value - adj.step_increment, adj.lower)
  64.         elif event.keyval == Gdk.KEY_Down:
  65.             adj.value = min(adj.value + adj.step_increment, adj.upper - adj.page_size)
  66.         elif event.keyval == Gdk.KEY_Page_Up:
  67.             adj.value = max(adj.value - adj.page_increment, adj.lower)
  68.         elif event.keyval == Gdk.KEY_Page_Down:
  69.             adj.value = min(adj.value + adj.page_increment, adj.upper - adj.page_size)
  70.         elif event.keyval == Gdk.KEY_Home:
  71.             adj.value = adj.lower
  72.         elif event.keyval == Gdk.KEY_End:
  73.             adj.value = adj.upper - adj.page_size
  74.         else:
  75.             return False
  76.  
  77.  
  78.